package com.igeek.javase.relation.game;

import java.util.concurrent.TimeUnit;

/**
 * @author chenmin
 * 2023/7/13 17:36
 * @description TODO
 */

/*1、定义一个英雄类Hero，可以通过这个类创建游戏角色，
     游戏角色拥有昵称，等级，血量，攻击力，防御力，种族，装备（只能装3个装备，初始没有装备）。
     游戏角色拥有基本攻击方法（拥有一定几率打出暴击），死亡判定方法，添加装备的方法，
     获取角色信息的方法。

     2、定义一个怪兽类Monster，可以通过这个类创建各种怪兽，
     怪兽拥有名称，等级，血量，攻击力，防御力，种族。
     怪兽拥有基本攻击方法，死亡判定方法，获取怪兽信息的方法。

     3、定义装备类Equip，可以通过这个类创建各种装备
     装备拥有名称，级别，颜色，类别，攻击力，防御力
     装备拥有获取装备信息的方法

     4、测试类
     创建一个游戏角色英雄类Hero、装备Equip、怪兽Monster，
     角色英雄类Hero装上装备，双方使用回合制的形式进行攻击
     （一人打一下，角色英雄类Hero先攻击，失血量=攻击-防御 ，攻击<防御，不产生攻击），
     直到一方死亡，游戏结束

     暴击>某个值
     失血量=(攻击+暴击)-防御
     */


public class Test {

    public static void main(String[] args) throws InterruptedException {
        Hero hero = new Hero("剑圣" , 7 , 60 , 280 , 60 , "兽族");
        Monster monster = new Monster("哥斯拉" , 7 , 1640 , 200 , 100 , "怪兽族");
        Equipments equip1 = new Equipments("倚天剑" , 9 , "金色" , "剑类" , 80 , 30);
        Equipments equip2 = new Equipments("屠龙刀" , 9 , "银色" , "刀类" , 70 , 40);
        Equipments equip3 = new Equipments("盾牌" , 9 , "彩色" , "盾类" , 10 , 90);

        //添加装备
        hero.addEquip(equip3);
        hero.addEquip(equip2);

        //hero.show();
        //monster.show();

        //回合制攻击
        int count = 0;
        while (true){
            System.out.println("================第"+(++count)+"回合================");

            //英雄攻击
            hero.attack(monster);
            if(monster.isDead()){
                System.out.println("怪兽死亡，游戏结束");
                System.exit(0);
            }

            TimeUnit.SECONDS.sleep(1);

            //怪兽攻击
            monster.attack(hero);
            if(hero.isDead()){
                System.out.println("英雄死亡，游戏结束");
                System.exit(0);
            }

            TimeUnit.SECONDS.sleep(1);
        }

    }
}
